package br.com.tabletcaixa.atividade;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.widget.Toast;
import br.com.tabletcaixa.db.DBHelper;
import br.com.tabletcaixa.midia.MidiaVO;

public class AtividadeDAO {

	private SQLiteDatabase db;
	private DBHelper dbHelper;

	private String[] colunas = { DBHelper.ATIVIDADE_ID, DBHelper.ATIVIDADE_DESCRICAO };

	public AtividadeDAO(Context context) {

		dbHelper = new DBHelper(context);

	}

	public void conectar() {

		db = dbHelper.getWritableDatabase();

	}

	public void desconectar() {

		dbHelper.close();

	}

	public long cadastrarAtividade(Context context, AtividadeVO atividade) {

		try {

			ContentValues values = new ContentValues();
			values.put(DBHelper.ATIVIDADE_DESCRICAO, atividade.getDescricao());

			return db.insert(DBHelper.TBL_ATIVIDADE, null, values);

		} catch (Exception e) {

			Toast.makeText(context,
					"Erro ao cadastrar atividade: /n" + e.getMessage(),
					Toast.LENGTH_LONG).show();

		}

		return 0;

	}

	public long excluirAtividade(Context context, AtividadeVO atividade) {

		try {

			long id = atividade.getId();

			ContentValues values = new ContentValues();
			values.put(DBHelper.ATIVIDADE_DESCRICAO, atividade.getDescricao());

			return db.delete(DBHelper.TBL_ATIVIDADE,
					DBHelper.ATIVIDADE_ID + " = " + id, null);

		} catch (Exception e) {

			Toast.makeText(context,
					"Erro ao excluir atividade: /n" + e.getMessage(),
					Toast.LENGTH_LONG).show();

		}

		return 0;

	}

	public void excluirTodasAtividades() {

		db.execSQL("DELETE FROM " + DBHelper.TBL_ATIVIDADE);

	}

	public List<AtividadeVO> consultarAtividade() {

		List<AtividadeVO> lstAtividade = new ArrayList<AtividadeVO>();

		Cursor cursor = db.query(DBHelper.TBL_ATIVIDADE, colunas, 
				null, null, null, null, null);

		cursor.moveToFirst();

		while (!cursor.isAfterLast()) {

			AtividadeVO lAtividade = cursorToAtividade(cursor);
			lstAtividade.add(lAtividade);
			cursor.moveToNext();

		}

		cursor.close();
		return lstAtividade;

	}

	private AtividadeVO cursorToAtividade(Cursor cursor) {

		AtividadeVO atividade = new AtividadeVO();
		atividade.setId(cursor.getLong(0));
		atividade.setDescricao(cursor.getString(1));

		return atividade;

	}

}
